package day0730;

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;

public class GameWin  extends  JPanel{

    void moveAllFlys(){
        for(int i=0;i<bullets.size();  i++) {//用循环取出bullets里边每个子弹
            Bullet b=bullets.get(i);//从集合中用get(元素编号)取出一个子弹对象
            b.move();   // 调用子弹的move方法
        }
    }


    void startGame(){
        while(true){
            try {
                Thread.sleep(80);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            createBullets();
            moveAllFlys();
            //只要游戏有一点儿改变，就要用repaint()方法调用paint()方法绘制所有内容。
            repaint();//重新调用paint()方法的意思  (绘制文字，绘制背景图，绘制子弹)
        }
    }


    ArrayList<Bullet>  bullets=new ArrayList<Bullet>();
    //創建子彈，并将子弹添加到bullets数组中的方法
    int creatBulletCount=1;
    void createBullets() {
       if(creatBulletCount%5==0){
          Bullet b=new Bullet();//创建一个子弹对象
          bullets.add(b);//将创建的子弹放入到集合中
          System.out.println(bullets.size());
       }
        creatBulletCount++;
    }//还需要在main方法中调用createBullets()方法



    public void paint(Graphics g){
        ImageIcon imgIcon=new ImageIcon("images/background.png");//读取图片
        g.drawImage(imgIcon.getImage(),0,0,null);
        //绘制图片到0,0点(左上角坐标定义为0,0)
        g.drawString("life:", 10,20);//绘制//画画的代码
        g.drawString("score:", 10,40);//绘制//画画的代码
        g.drawString("quit:Q/q:", 10,60);//绘制//画画的代码
        for (int i = 0; i <bullets.size(); i++) {//循环取出bullets集合中的每个子弹，将图片用drawImage()绘制
            Bullet b=bullets.get(i);
            g.drawImage(b.img,b.x,b.y,null);
        }
    }


    public static void main(String[] args) {
        JFrame win=new JFrame();
        GameWin pane=new GameWin();//2.
        win.setSize(420,700);
        win.add(pane);
        win.setVisible(true);
        pane.startGame();
    }
}
